1
Фундаментальные основы: Взаимодействие с интерфейсом командной строки в Rust
AI034Lesson 2
00:00

Диалог программирования

Представьте разницу между простым «Привет, мир!» и игрой на угадывание числа как разницу между монологом и диалогом. В монологе программа говорит и завершается. В диалоге программа задаёт вопрос, открывает слушатель и приостанавливает внутренний таймер до тех пор, пока пользователь не ответит.

1. Предварительный набор и область видимости

Rust автоматически импортирует небольшой набор элементов, называемых предварительным набором в каждую программу. Однако для специализированных задач, таких как ввод из терминала, мы должны явно включить стандартную библиотеку в область видимости с помощью use std::io;. Это соединяет разрыв между логикой вашей программы и внешней средой.

ТерминалСтандартный выводПрограмма на Rustобласть видимости функции main()println! (Макрос)io::stdin() (Ввод)

2. Макросы против функций

Вы заметите, что println! заканчивается восклицательным знаком. Это указывает на то, что это макрос. В отличие от обычных функций, макросы могут обрабатывать переменное количество аргументов и выполнять интерполяцию строк (вставка значений {угадай}) во время компиляции.

3. Жизненный цикл взаимодействия

Когда вы запускаете cargo run, программа инициализируется, достигает io::stdin().read_line(), и приостанавливается. Он ждет, пока пользователь нажмёт клавишу 'Enter', затем упаковывает этот ввод в тип Result чтобы безопасно обработать возможные сбои оборудования.

main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>